Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update vertical interpolation stand-alone, fix vert_interp call #1337

Merged
merged 1 commit into from
Jan 4, 2021

Conversation

davegill
Copy link
Contributor

TYPE: bug fix

KEYWORDS: vertical, interpolation

SOURCE: internal

DESCRIPTION:
The stand-alone vertical interpolation program that is part of the module_initialize_real.F
file allows detailed testing of the existing vertical interpolation process used for ARW
in the real program. It is understood that practically no one except for me ever exercises
this utility.

  1. The call to the main vertical interpolation routine, vert_interp, was out of date (missing
    the grid id for some diagnostic error prints).

  2. A suggestion for a build command is now provided.

  3. Locations to use pressure-level or eta-level data are provided.

LIST OF MODIFIED FILES:
M module_initialize_real.F

TESTS CONDUCTED:

  1. The stand-alone code builds and runs properly.
 ------------------------------------
 UNIT TEST FOR VERTICAL INTERPOLATION
 ------------------------------------
  
  
 ------------------------------------
 Lagrange Order =            1
 ------------------------------------
  
  
 Level   Pressure     Field
           (Pa)      (generic)
 ------------------------------------
  
 1    102000.000   102000.00    
 2    100000.000   100000.00    
 3     94722.219   94722.219    
 4     89444.445   89444.445    
 5     84166.664   84166.664    
 6     78888.891   78888.891    
 7     73611.109   73611.109    
 8     68333.336   68333.336    
 9     63055.555   63055.555    
10     57777.777   57777.777    
11     52500.000   52500.000    
12     47222.223   47222.223    
13     41944.445   41944.445    
14     36666.668   36666.668    
15     31388.889   31388.889    
16     26111.111   26111.111    
17     20833.334   20833.334    
18     15555.556   15555.556    
19     10277.777   10277.777    
20      5000.000   5000.0000    
  
 Multi-Order Interpolator
 ------------------------------------
  
 Level  Pressure      Field           Field         Field
          (Pa)        Calc            Interp        Diff
 ------------------------------------
  
 1    100327.586    100327.6       100327.6      0.7812500E-02
 2     96982.758    96982.76       96982.76       0.000000    
 3     93637.930    93637.93       93637.93       0.000000    
 4     90293.102    90293.10       90293.10       0.000000    
 5     86948.273    86948.27       86948.27       0.000000    
 6     83603.445    83603.45       83603.45     -0.7812500E-02
 7     80258.617    80258.62       80258.62       0.000000    
 8     76913.797    76913.80       76913.80       0.000000    
 9     73568.969    73568.97       73568.97       0.000000    
10     70224.141    70224.14       70224.14       0.000000    
11     66879.312    66879.31       66879.31       0.000000    
12     63534.484    63534.48       63534.48       0.000000    
13     60189.656    60189.66       60189.66       0.000000    
14     56844.828    56844.83       56844.83       0.000000    
15     53500.000    53500.00       53500.00       0.000000    
16     50155.172    50155.17       50155.17       0.000000    
17     46810.344    46810.34       46810.35     -0.3906250E-02
18     43465.516    43465.52       43465.52       0.000000    
19     40120.688    40120.69       40120.69       0.000000    
20     36775.863    36775.86       36775.87     -0.3906250E-02
21     33431.035    33431.04       33431.04       0.000000    
22     30086.207    30086.21       30086.21       0.000000    
23     26741.379    26741.38       26741.38       0.000000    
24     23396.551    23396.55       23396.55       0.000000    
25     20051.725    20051.72       20051.73     -0.1953125E-02
26     16706.896    16706.90       16706.90       0.000000    
27     13362.068    13362.07       13362.07       0.000000    
28     10017.241    10017.24       10017.24      0.9765625E-03
29      6672.414    6672.414       6672.413      0.4882812E-03
  1. Due to cpp ifdefs, the modifications have no impact on the traditionally used compilable code.

TYPE: bug fix

KEYWORDS: vertical, interpolation

SOURCE: internal

DESCRIPTION:

The stand-alone vertical interpolation program that is part of the module_initialize_real.F
file allows detailed testing of the existing vertical interpolation process used for ARW
in the real program.

1. The call to the main vertical interpolation routine, vert_interp, was out of date (missing
the grid id for some diagnostic error prints).

2. A suggestion for a build command is now provided.

3. Locations to use pressure-level or eta-level data are provided.

LIST OF MODIFIED FILES:
M	module_initialize_real.F

TESTS CONDUCTED:
1. The stand-alone code builds and runs properly.
2. Due to cpp ifdefs, the modifications to no impact the traditionally used compilable code.
@davegill
Copy link
Contributor Author

@kkeene44
Kelly,
This is a PR that does not impact any compilable code. It is for internal testing. I updated the interface to use the current call structure in the real program. Would you please review this?

@weiwangncar
Copy link
Collaborator

@davegill Would this be helpful to configuring vertical levels, such as playing with dz_stretch_s, dz_stretch_u and so on without running the entire real program? If it does, I'd like to know how I can do this.

@davegill
Copy link
Contributor Author

@weiwangncar
Wei,
Unfortunately, no. This just allows me to test when someone has a vertical interpolation error. It is rarely used.

@davegill davegill merged commit f7ed785 into wrf-model:release-v4.2.2 Jan 4, 2021
vlakshmanan-scala pushed a commit to scala-computing/WRF that referenced this pull request Apr 4, 2024
…model#1337)

TYPE: bug fix

KEYWORDS: vertical, interpolation

SOURCE: internal

DESCRIPTION:
The stand-alone vertical interpolation program that is part of the module_initialize_real.F
file allows detailed testing of the existing vertical interpolation process used for ARW
in the real program. It is understood that practically no one except for me ever exercises
this utility.

1. The call to the main vertical interpolation routine, vert_interp, was out of date (missing
the grid id for some diagnostic error prints).

2. A suggestion for a build command is now provided.

3. Locations to use pressure-level or eta-level data are provided.

LIST OF MODIFIED FILES:
M	module_initialize_real.F

TESTS CONDUCTED:
1. The stand-alone code builds and runs properly.
```
 ------------------------------------
 UNIT TEST FOR VERTICAL INTERPOLATION
 ------------------------------------
  
  
 ------------------------------------
 Lagrange Order =            1
 ------------------------------------
  
  
 Level   Pressure     Field
           (Pa)      (generic)
 ------------------------------------
  
 1    102000.000   102000.00    
 2    100000.000   100000.00    
 3     94722.219   94722.219    
 4     89444.445   89444.445    
 5     84166.664   84166.664    
 6     78888.891   78888.891    
 7     73611.109   73611.109    
 8     68333.336   68333.336    
 9     63055.555   63055.555    
10     57777.777   57777.777    
11     52500.000   52500.000    
12     47222.223   47222.223    
13     41944.445   41944.445    
14     36666.668   36666.668    
15     31388.889   31388.889    
16     26111.111   26111.111    
17     20833.334   20833.334    
18     15555.556   15555.556    
19     10277.777   10277.777    
20      5000.000   5000.0000    
  
 Multi-Order Interpolator
 ------------------------------------
  
 Level  Pressure      Field           Field         Field
          (Pa)        Calc            Interp        Diff
 ------------------------------------
  
 1    100327.586    100327.6       100327.6      0.7812500E-02
 2     96982.758    96982.76       96982.76       0.000000    
 3     93637.930    93637.93       93637.93       0.000000    
 4     90293.102    90293.10       90293.10       0.000000    
 5     86948.273    86948.27       86948.27       0.000000    
 6     83603.445    83603.45       83603.45     -0.7812500E-02
 7     80258.617    80258.62       80258.62       0.000000    
 8     76913.797    76913.80       76913.80       0.000000    
 9     73568.969    73568.97       73568.97       0.000000    
10     70224.141    70224.14       70224.14       0.000000    
11     66879.312    66879.31       66879.31       0.000000    
12     63534.484    63534.48       63534.48       0.000000    
13     60189.656    60189.66       60189.66       0.000000    
14     56844.828    56844.83       56844.83       0.000000    
15     53500.000    53500.00       53500.00       0.000000    
16     50155.172    50155.17       50155.17       0.000000    
17     46810.344    46810.34       46810.35     -0.3906250E-02
18     43465.516    43465.52       43465.52       0.000000    
19     40120.688    40120.69       40120.69       0.000000    
20     36775.863    36775.86       36775.87     -0.3906250E-02
21     33431.035    33431.04       33431.04       0.000000    
22     30086.207    30086.21       30086.21       0.000000    
23     26741.379    26741.38       26741.38       0.000000    
24     23396.551    23396.55       23396.55       0.000000    
25     20051.725    20051.72       20051.73     -0.1953125E-02
26     16706.896    16706.90       16706.90       0.000000    
27     13362.068    13362.07       13362.07       0.000000    
28     10017.241    10017.24       10017.24      0.9765625E-03
29      6672.414    6672.414       6672.413      0.4882812E-03
```
2. Due to cpp ifdefs, the modifications have no impact on the traditionally used compilable code.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants